namespace ConsoleApp1;

public class NameOf
{
    //nameof 表达式可生成变量、类型或成员的名称作为字符串常量。 nameof 表达式在编译时进行求值，在运行时无效。 当操作数是类型或命名空间时，生成的名称不是完全限定的。 以下示例显示了 nameof 表达式的用法：
    public static void t1()
    {
        Console.WriteLine(nameof(System.Collections.Generic)); // output: Generic
        Console.WriteLine(nameof(List<int>)); // output: List
        Console.WriteLine(nameof(List<int>.Count)); // output: Count
        Console.WriteLine(nameof(List<int>.Add)); // output: Add

        List<int> numbers = new List<int>() { 1, 2, 3 };
        Console.WriteLine(nameof(numbers)); // output: numbers
        Console.WriteLine(nameof(numbers.Count)); // output: Count
        Console.WriteLine(nameof(numbers.Add)); // output: Add
    }

    // [ParameterString(nameof(msg))]
    // public static void Method(string msg)
    // {
    //     [ParameterString(nameof(T))]
    //     void LocalFunction<T>(T param)
    //     {
    //     }
    //
    //     var lambdaExpression = ([ParameterString(nameof(aNumber))] int aNumber) => aNumber.ToString();
    // }
}